草庐IT

php - 重定向是保持散列

全部标签

ruby - 将散列转换为名称-值对的字符串

如果我将ruby​​散列转换为名称-值对字符串(例如,用于HTTP参数),这是最好的方法吗?#Definethehashfields={"a"=>"foo","b"=>"bar"}#Turnitintothename-valuestringhttp_params=fields.map{|k,v|"#{k}=#{v}"}.join('&')我想我的问题是:是否有更简单的方法来访问http_params?诚然,上述方法有效并且相当简单,但我很好奇是否有一种方法可以在不首先创建数组(map方法的结果)的情况下从散列获取字符串? 最佳答案

ruby - RSpec 2.7 和散列应该有_key

我试图弄清楚为什么我写的一个非常简单的“这个散列有这个key”规范失败了。进入我的RubyREPL我正在尝试以下...[3]pry(main)>a_hash={:a=>"A"}=>{:a=>"A"}[4]pry(main)>a_hash.shouldhave_key:aNoMethodError:undefinedmethod`have_key'formain:Objectfrom(pry):4:in`'[5]pry(main)>a_hash.keys.length.should==1=>true[8]pry(main)>a_hash.has_key?:a=>true第一个测试显然是我

ruby-on-rails - 如何使用 FactoryGirl 发送参数(而不是手动将参数作为散列发送)?

我有以下有效的rspec测试:it"redirectstothecreatedapi_key"dopost:create,:api_key=>{:api_identifier=>"asdfadsf",:verification_code=>"12345"}response.shouldredirect_to(ApiKey.last)#(oranyothertestfunction)end但我使用Factorygirl,所以我不必手动创建api_key。如何复制上述功能,但使用factorygirl?使用:it"redirectstothecreatedapi_key"dotest=Fa

Ruby:按值查找散列中的项目

我目前正在使用如下所示的ruby​​哈希:{"employee"=>[{"name"=>"john","level"=>"1","position"=>"S1"},{"name"=>"bill","level"=>"2","position"=>"S2"}]}这是员工的两个例子,我需要能够通过值(value)观来吸引员工。例如,我想获得级别==2的所有员工,或位置==S1的所有员工。我如何在Ruby中执行此操作? 最佳答案 使用Hash#select或Array#select.level_2_employees=infoHash["

ruby - 删除散列中不在数组中的键

我找不到从散列中删除不在给定键名称数组中的键的方法。我读到我可以使用except或slice,但我如何才能向他们提供我想保留的键名列表?例如,如果我有这个散列:entry={:title=>"casablanca",:media=>"dvd",:localeLanguage=>"en",:imdb=>"",:freebase=>"",:originalTitle=>'casablanca',:season=>'1',:episode=>'3'}我只想保留,比如说,:title、:media和:localeLanguage,我怎么能只保留那些值我指定的键名?

ruby-on-rails - 将散列键转换为小写 -- Ruby 初学者

我的表格字段名称是小写的,而我从CSV文件中获取的字段名称是驼峰式的。无论如何我可以将哈希数组的键转换为小写吗?这是我现在的代码:CSV.foreach(file,:headers=>true)do|row|Users.create!(row.to_hash)end这是失败的,因为键是驼峰式的(我已经通过手动编辑文件使标题行全部小写来验证这一点)。附言。我也很想知道为什么Rails开始时会考虑表字段名称的大小写敏感性? 最佳答案 您可以只对CSV使用header_converters选项:CSV.foreach(file,:head

ruby - Sinatra 不会在 Chrome 上通过重定向保持 session

Sinatra没有在Chrome上通过重定向保留我的session。它正在创建一个全新的session,我正在丢失我以前的所有session数据。举个例子(类似于theSinatradocs),我正在做这样的事情:enable:sessionsget'/foo'dosession[:user_id]=123session[:session_id]#"ABC",forexampleredirectto('/bar')endget'/bar'do#thisis"DEF"whenrespondingtoChrome(wrong),#but"ABC"whenrespondingtoFirefo

ruby - ruby 是否有一个列表类型可以在添加/删除时保持内容排序?

我需要一个Ruby中的数据结构,在添加或删除元素时保持其元素排序,并允许(至少)能够从列表中弹出第一个元素。我在ruby​​文档中找到的最接近的是SortedSet.但是,这似乎没有提供任何方式来通过索引访问元素(甚至弹出第一个元素)这些是我需要的具体操作:将对象添加到列表从列表中弹出第一个对象检查一个对象是否在列表中从列表中删除对象(按对象,而不是按索引)ruby是否为此内置了任何东西,或者是否有任何我可以获取的库可以提供给我?我可以毫不费力地实现一个,但如果可能的话,我宁愿使用一个已经存在的。目前我使用的是Ruby1.8,但切换到1.9可能没问题。编辑:由于似乎有些困惑,我需要的排

ruby-on-rails - 使用 Devise 登录后测试重定向

为此,我遵循了Devisegithub页面的建议:http://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-in现在效果很好,但是您现在如何测试您是否有这种行为? 最佳答案 有两种方法可以在单元级别测试它,一种是在继承应用程序Controller的Controller中编写测试。代码看起来像it"shouldredirecttopage_xafterloggedin"dosign_in:user

ruby-on-rails - 将散列作为函数参数处理

我正在使用RubyonRails3,我正在尝试将散列作为函数参数进行处理。例如,如果我这样声明一个函数:deffunction_name(options={})...end我想向function_name传递一个类似的散列{"key1"=>"value_1","key2"=>"value2","..."=>"..."}然后在函数内部使用它。什么是最佳\常见(Rails)方法?P.S.:我在某处看到了extract_option!方法,但我不知道在哪里可以找到一些文档,也不知道我是否需要这些文档才能实现我的目标。 最佳答案 只需使用您